package com.cari.oa.service;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.cari.oa.dao.BaseDao;
import com.cari.oa.dao.OperationLogDao;
import com.cari.oa.domain.OperationLogEntity;

@Service
@Transactional(rollbackFor = Exception.class)
public class OperationLogService extends BaseService<OperationLogEntity>{

	@Resource
	private OperationLogDao operationLogDao;
	
	@Override
	public BaseDao<OperationLogEntity> getDao() {
		return operationLogDao;
	}

	  /**
     * 根据英文名获取系统字典项实体
     * @param enname 系统字典项英文名
     * @return 系统字典项对象
     */
	@Transactional(readOnly = true)
    public OperationLogEntity getByName(String id) {
        return operationLogDao.getById(id);
    }
	
	 /**
     * 根据英文名获取系统字典项实体
     * @param enname 系统字典项英文名
     * @return 系统字典项对象
     */
	@Transactional(readOnly = true)
    public List<Map<String, String>> getOperationUser() {
        return operationLogDao.getOperationUser();
    }
    
    /**
     * 分页查询系统字典项实体对象
     * @param enname 系统字典项英文名
     * @param alias 系统字典项别名
     * @param groupName 系统字典组英文名
     * @param status 系统字典项状态
     * @param page 当前页
     * @param size 每页条数
     * @return 分页实体
     */
	@Transactional(readOnly = true)
    public List<OperationLogEntity> getPage(String titile, String content, String operationUserEn, Timestamp startTime, Timestamp endTime, int page, int size) {
    	return operationLogDao.getPage(titile, content, operationUserEn, startTime, endTime, page, size);
    }
    
    /**
     * 查询的记录数
     * @param enname 系统字典项英文名
     * @param alias 系统字典项别名
     * @param groupName 系统字典组英文名
     * @param status 系统字典项状态
     * @param moduleName 所属模块英文名
     * @return 记录数
     */
	@Transactional(readOnly = true)
    public long getCount(String titile, String content, String operationUserEn, Timestamp startTime, Timestamp endTime) {
    	return operationLogDao.getCount(titile, content, operationUserEn, startTime, endTime);
    }	
	
	 /**
     * 判断该英文名实体对象是否存在
     * @param enname 系统字典项英文名
     * @return 是否存在
     */
	@Transactional(readOnly = true)
    public boolean existByTitle(String title) {
        return operationLogDao.existByTitle(title);
    }
}
